package com.example.mqttmanage.domain.communication;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.time.LocalDateTime;
import com.fasterxml.jackson.databind.JsonNode; // 或其他 JSON 库对应的类型

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 通讯表
 */
@TableName(value = "communications")
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Communication implements Serializable {
    /**
     * 主键ID
     */
    @TableId(type = IdType.AUTO)
    private Integer id;

    /**
     * 消息类型，例如 1-注册 2-心跳 3-设备参数设置回复 4-阀控回复 5-下载表册 6-实时读表数据上报 30-远程升级回复
     */
    private Integer cmdtype;

    /**
     * 接收的消息内容 (JSON格式)
     */
    private JsonNode receiveMessages; // 也可以用 String 接收，然后在业务层处理

    /**
     * 设备ID
     */
    private String deviceId;

    /**
     * 是否已回复，1-已回复，0-未回复，默认为0
     */
    private Boolean isreply; // 或者用 Integer isreply; 0/1

    /**
     * 消息接收时间
     */
    private LocalDateTime createTime;

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;
}